This invention relates generally to packet flows and, in particular, to apparatus and methods used for channel assignment of packet flows.
A packet flow can be defined by one of a number of different classes depending upon the particular characteristics of the flow. Flows of these different classes have corresponding differences in transmission requirements with respect to Quality of Service (QoS). As described herein below with reference to FIGS. 1A and 1B, it can be seen that flows of these different classes further have differences with respect to channel bandwidth requirements.
FIG. 1A is a graphical depiction comparing channel speed (directly related to channel bandwidth) in kilobits per second (kbps) to channel utilization in percent, for a number of flows of different flow classifications, classes 1 through 4 in this example. For this example, classes 1 to 4 each have different resource requirements, the resource requirements increasing from class 1 through to class 4. As can be seen in FIG. 1A, no matter what the class of the flow, at low channel speeds, the channel utilization will be close to 100%. When a class 4 flow is sent along channels of increasingly large channel speed, the channel utilization remains virtually at 100% as each additional increase in channel speed is used to decrease the time of transmission for the flow. For flows of classes 1 through 3 with lower resource requirements, it can be seen that the channel utilization decreases as the channel speed increases. Hence, if a channel of a large channel speed is selected for a flow of class 1, 2 or 3, the efficiency of use for this channel would be low.
FIG. 1B is a graphical depiction comparing channel speed in kbps with channel throughput in kbps, for a number of flows of different classifications, the classes 1 through 4 described in the above example. In this figure, it can be seen that for a class 4 flow, as the channel speed increases, the channel throughput increases at a corresponding rate. By comparison, although a class 3 flow has a channel speed and channel throughput characteristic similar to a class 4 flow at low channel speeds, as the channel speed for a class 3 flow increases beyond a threshold level, the channel throughput virtually levels off and only marginally increases as the channel speed continues to increase. Similar results can be seen for flows of class 1 or 2, with the threshold level of channel speed at which the increases in channel throughput start leveling off being significantly lower.
Essentially, FIGS. 1A and 1B illustrate the importance of having the proper channel selected for the proper packet flow. If an improper channel is selected, the efficiency of transmission for the flow can be severely jeopardized. For instance, if a channel of high channel speed is selected for a flow with low bandwidth requirements such as a class 1 flow described above, the channel utilization will be low and a significant portion of potential throughput for the channel will be unused. On the other hand, if a channel of low channel speed is used to transmit a flow with high bandwidth requirements such as a class 4 flow described above, the time that it will take to transmit the flow will be significantly increased. This increased time causes the single flow to monopolize the channel for a longer period of time and further decreases customer satisfaction.
Currently, channels are selected for a particular packet flow based upon the flow classification that is assigned to the first packet of the flow, the flow classification of the first packet being determined with use of static characteristics related to this packet. A flow classification technique that utilizes such static characteristics corresponding to the first packet to assign a flow classification to a packet flow is referred to as a static flow classification technique. In this case, the bandwidth requirements of the particular flow as a whole are assumed to be consistent with the bandwidth requirements typical of the flow classification determined with the static is flow classification technique.
Unfortunately, there are situations in which the bandwidth requirements typical of the flow class determined with the static flow classification technique for the first packet of a packet flow is not consistent with the bandwidth requirements for the flow as a whole. These situations include, but are not limited to, cases in which the static characteristics of the first packet cannot be analyzed due to encryption and/or the flow effectively changing in bandwidth requirements after the flow has been assigned to a particular channel. In these situations the standard channel assignment techniques will not always select the best channel for the packet flow or a portion of the flow. An improved channel assignment technique is required that can compensate for these problems. This is particularly important when considering issues applicable to the wireless environment where channel resources are significantly more limited and proper channel utilization becomes critical.
The present invention is directed to apparatus and methods used for dynamically assigning packet flows to transmission channels. Using the technique of the present invention, an initial channel assignment is made based upon a channel specification that corresponds to a flow classification indication within the first packet of the flow. Subsequently, the flow classification indications of further packets within the flow are monitored for changes. If it is detected that a flow classification indication has changed when compared to the previous flow classification indication, it is determined whether the previous channel assignment satisfies a channel specification that corresponds to the new flow classification indication. If it is determined that the previous channel does not satisfy this new channel specification, a modified channel assignment is generated for the subsequent packets of the flow. The use of dynamic assignment of channels for packet flows can significantly increase the utilization efficiency within transmission channels if the flow classification of the packet flow is modified before completion.
The present invention, according to a first broad aspect, is a computing apparatus arranged to receive a flow of packets, a plurality of the packets having corresponding flow classification indications. The computing apparatus includes a flow classification reader and channel assignment logic. The flow classification reader operates to determine a first flow classification indication associated with a first packet of the flow and at least one subsequent flow classification indication associated with a subsequent packet of the flow. The channel assignment logic operates to assign the flow to a first one of the channels with use of the first flow classification indication, to determine if a change channel test is passed with use of the subsequent flow classification indication and to re-assign the flow to a second one of the channels with use of the subsequent flow classification indication if the change channel test is passed.
According to a second broad aspect, the present invention is a packet transmission system arranged to receive a flow of packets, a plurality of the packets having a corresponding flow classification indication. In this aspect, the packet transmission system includes a plurality of transmission channels along with a flow classification reader and channel assignment logic similar to the first broad aspect.
Preferably, the transmission channels are wireless communication channels. As well, the system further preferably includes a look-up database that lists a plurality of channel specifications that correspond to respective flow classification indications. In this aspect, the channel assignment logic operates to assign the flow to a first one of the channels by determining a first channel specification that corresponds to the first flow classification indication with use of the look-up database and assigning the flow to a channel that achieves the first channel specification. Further, the channel assignment logic operates to re-assign the flow to a second one of the channels by determining a second channel specification that corresponds to the at least one subsequent flow classification indication with use of the look-up database and re-assigning the flow to a channel that achieves the second channel specification.
The present invention, according to a third broad aspect, is a method for dynamically assigning a flow of packets to one of a plurality of channels, a plurality of the packets having corresponding flow classification indications. In this aspect, the method includes a number of steps. Firstly, the method reads a first flow classification indication associated with a first packet of the flow and assigns the flow to a first one of the channels with use of the first flow classification indication. Next, the method reads subsequent flow classification indications associated with subsequent packets of the flow and determines it the assigned first channel for the flow needs to be changed with use of the subsequent flow classification indications. Finally, if the assigned first channel for the flow needs to be changed, the method re-assigns the flow to a second one of the channels with use of the subsequent flow classification indications.
In a yet further aspect, the present invention is a computer readable memory arranged to store a channel assignment software that can be run on a computing apparatus that receives a flow of packets, a plurality of the packets having corresponding flow classification indications. In this aspect, the channel assignment software when running on the computing apparatus operates to perform steps similar to those described for the third broad aspect.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.